#!/usr/bin/env python

import os
import time
from bs4 import BeautifulSoup, NavigableString, Tag

start = time.time()

def find_replace(root_dir, find_text, replace_text, output_file):
    find_words = [find_text.strip()]  # Treat find_text as a single entity
    replace_words = [replace_text.strip()]  # Ensure replace_text is used as is

    script_dir = os.path.dirname(os.path.abspath(__file__))
    html = "<html><body><h1>Files Modified during find-replace operation</h1><ul>"

    for root, dirs, files in os.walk(root_dir):
        # Skip the root directory where the script is placed
        if root == script_dir:
            continue

        for file in files:
            if file.endswith('.html'):
                file_path = os.path.join(root, file)
                # Skip files in the root directory
                if root == root_dir:
                    continue
                try:
                    with open(file_path, 'r', encoding='utf-8') as f:
                        content = f.read()
                    soup = BeautifulSoup(content, 'html.parser')
                    modified = False
                    modified_words = []

                    for find_word, replace_word in zip(find_words, replace_words):
                        # Find all <div> tags
                        div_tags = soup.find_all('div')
                        for div in div_tags:
                            # Find all <p> tags within the <div> tag
                            p_tags = div.find_all('p')
                            for p in p_tags:
                                # Concatenate the text content of all child nodes within the <p> tag
                                p_text = ''.join(str(child) for child in p.children if isinstance(child, (NavigableString, Tag)))
                                # Find exact match of find_word in the text content of the <p> tag
                                if find_word in p_text:
                                    # Check if find_word is within an <a> tag
                                    if any(find_word in str(a) for a in p.find_all('a')):
                                        continue
                                    print(f"Found '{find_word}' in {file_path}")
                                    # Replace find_word with the given HTML anchor tag
                                    new_p_text = p_text.replace(find_word, replace_word)
                                    # Replace the text content of the <p> tag
                                    p.clear()
                                    p.append(BeautifulSoup(new_p_text, 'html.parser'))
                                    modified = True
                                    modified_words.append(f"{find_word} -> {replace_word}")

                        # Find all heading tags
                        heading_tags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
                        for tag in heading_tags:
                            for heading in soup.find_all(tag):
                                heading_text = ''.join(str(child) for child in heading.children if isinstance(child, (NavigableString, Tag)))
                                # Find exact match of find_word in the text content of the heading tag
                                if find_word in heading_text:
                                    # Check if find_word is within an <a> tag
                                    if any(find_word in str(a) for a in heading.find_all('a')):
                                        continue
                                    print(f"Found '{find_word}' in {file_path}")
                                    # Replace find_word with the given HTML anchor tag
                                    new_heading_text = heading_text.replace(find_word, replace_word)
                                    # Replace the text content of the heading tag
                                    heading.clear()
                                    heading.append(BeautifulSoup(new_heading_text, 'html.parser'))
                                    modified = True
                                    modified_words.append(f"{find_word} -> {replace_word}")

                        # Find all <a> tags and replace the entire tag if it matches find_word
                        a_tags = soup.find_all('a')
                        for a in a_tags:
                            if str(a) == find_word:
                                print(f"Found '{find_word}' as full <a> tag in {file_path}")
                                a.replace_with(replace_word)
                                modified = True
                                modified_words.append(f"{find_word} -> {replace_word}")

                    # Exclude searching within <title> tags
                    title_tag = soup.find('title')
                    if title_tag:
                        title_tag.replace_with(title_tag)

                    if modified:
                        with open(file_path, 'w', encoding='utf-8') as f:
                            f.write(str(soup))
                        print(f"Modified {file_path}")
                        html += f"<li><a href='./{file_path}'>{file}</a> - Modified words: {', '.join(modified_words)}</li>"
                except Exception as e:
                    print(f"Error reading {file_path}: {e}")

    html += "</ul></body></html>"
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write(html)
    print("See modified files list in", output_file)

root_dir = './'

# Example1: Plain text to plain text
# find_text = '''पूज्य पूज्य गुरुदेव'''
# replace_text = '''पूज्य गुरुदेव'''

# Example2: Plain text to HTML anchor tag
# find_text = '''वन्दनीया माताजी'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="बेटा! मुझे और गुरुजी को कभी अलग मत समझना। बेटा, आने वाले समय में दुनिया अपनी समस्याओं का समाधान मेरे गीतों में और पूज्य गुरुजी के प्रवचनों में (विचारों में) ढूँढ़ेगी।">वन्दनीया माताजी</a>'''
# find_text = '''माताजी'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="बेटा! मुझे और गुरुजी को कभी अलग मत समझना। बेटा, आने वाले समय में दुनिया अपनी समस्याओं का समाधान मेरे गीतों में और पूज्य गुरुजी के प्रवचनों में (विचारों में) ढूँढ़ेगी।">माताजी</a>'''
# find_text = '''परमपूज्य गुरुदेव'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="पूज्य गुरुदेव— मैं व्यक्ति नहीं विचार हूँ।.....हम व्यक्ति के रूप में कब से खत्म हो गए। हम एक व्यक्ति हैं? नहीं हैं। हम कोई व्यक्ति नहीं हैं। हम एक सिद्धान्त हैं, आदर्श हैं, हम एक दिशा हैं, हम एक प्रेरणा हैं।">परमपूज्य गुरुदेव</a>'''
# find_text = '''पूज्य गुरुदेव'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="पूज्य गुरुदेव— मैं व्यक्ति नहीं विचार हूँ।.....हम व्यक्ति के रूप में कब से खत्म हो गए। हम एक व्यक्ति हैं? नहीं हैं। हम कोई व्यक्ति नहीं हैं। हम एक सिद्धान्त हैं, आदर्श हैं, हम एक दिशा हैं, हम एक प्रेरणा हैं।">पूज्य गुरुदेव</a>'''
# find_text = '''गुरुदेव'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="पूज्य गुरुदेव— मैं व्यक्ति नहीं विचार हूँ।.....हम व्यक्ति के रूप में कब से खत्म हो गए। हम एक व्यक्ति हैं? नहीं हैं। हम कोई व्यक्ति नहीं हैं। हम एक सिद्धान्त हैं, आदर्श हैं, हम एक दिशा हैं, हम एक प्रेरणा हैं।">गुरुदेव</a>'''
# find_text = '''पूज्य गुरुजी'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="पूज्य गुरुदेव— मैं व्यक्ति नहीं विचार हूँ।.....हम व्यक्ति के रूप में कब से खत्म हो गए। हम एक व्यक्ति हैं? नहीं हैं। हम कोई व्यक्ति नहीं हैं। हम एक सिद्धान्त हैं, आदर्श हैं, हम एक दिशा हैं, हम एक प्रेरणा हैं।">पूज्य गुरुजी</a>'''
# find_text = '''गुरुजी'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="पूज्य गुरुदेव— मैं व्यक्ति नहीं विचार हूँ।.....हम व्यक्ति के रूप में कब से खत्म हो गए। हम एक व्यक्ति हैं? नहीं हैं। हम कोई व्यक्ति नहीं हैं। हम एक सिद्धान्त हैं, आदर्श हैं, हम एक दिशा हैं, हम एक प्रेरणा हैं।">गुरुजी</a>'''
# find_text = '''शान्तिकुञ्ज'''
# replace_text = '''<a href="../folders-special/shantikunj--kayakalp-ke-liye-bani-ek-akadami.html" target="blank" title="शान्तिकुञ्ज—कायाकल्प के लिए बनी एक अकादमी...अब हमने सारे के सारे शान्तिकुञ्ज को विश्वविद्यालय के रूप में परिणत कर दिया है।...आज मनुष्य को जीना कहाँ आता है? जीना भी एक कला है। सब आदमी खाते हैं, पीते हैं, सोते हैं और मौत के मुँह में चले जाते हैं, किन्तु जीना नहीं जानते। जीना बड़ी शानदार चीज है। इसको संजीवनी विद्या कहते हैं-जीवन जीने की कला। यहाँ हम अपने विश्वविद्यालय में-शान्तिकुञ्ज में जीवन जीने की कला सिखाते हैं और यह सिखाते हैं कि आज गए-बीते जमाने में आप अपनी नाव पार करने के साथ-साथ सैकड़ों आदमियों को बिठाकर पार किस तरह से लगा पाते हैं?">शान्तिकुञ्ज</a>'''
# find_text = '''क्रान्तिधर्मी साहित्य'''
# replace_text = '''<a href="../folders-special/krantidharmi-importance.html" target="blank" title="क्रान्तिधर्मी साहित्य मेरे अब तक के सभी साहित्य का मक्खन है। मेरे अब तक का साहित्य पढ़ पाओ या न पढ़ पाओ, इसे जरूर पढ़ना। इन्हें समझे बिना मिशन को न तो तुम समझ सकते हो, न ही किसी को समझा सकते हो।...मेरे जीवन भर का साहित्य शरीर के वजन से ज्यादा भारी है। यदि इसे तराजू के एक पलड़े पर रखें और क्रान्तिधर्मी साहित्य को (युग साहित्य को) एक पलड़े पर, तो इनका वजन ज्यादा होगा।...प्रत्येक कार्यकर्ता को नियमित रूप से इसे पढ़ना और जीवन में उतारना युग-निर्माण के लिए जरूरी है। तभी अगले चरण में वे प्रवेश कर सकेंगे।">क्रान्तिधर्मी साहित्य</a>'''
# find_text = '''गायत्री साधना'''
# replace_text = '''<a href="../folders-special/gayatri-sadhna-ka-uddeshya.html" target="blank" title="गायत्री साधना का उद्देश्य—गायत्री महाविज्ञान भाग-1">गायत्री साधना</a>'''
# find_text = '''आत्मबोध'''
# replace_text = '''<a href="../folders-special/aatmaboth-tattwabodh.html" target="blank" title="प्रात:काल जब उठा करें, तो आप अपने-आप का एक नया जन्म हुआ अनुभव किया कीजिए। ये अनुभव किया कीजिए कि रात को सोने का अर्थ है—पिछला जन्म और जब सबेरे उठने का जन्म है नया जन्म। जब आँख खुली तब नया जन्म। आप ये अनुभव कर लिया करें, तो मज़ा आए। आप ये सबेरे, हर दिन अनुभव कीजिए, कि आज हमारा नया जन्म हुआ।...आप सबेरे उठते ही जहाँ आज अपने जीवन को सराहें, जहाँ मनुष्य के जीवन पर गर्व-गौरव अनुभव करें, वहाँ एक और बात साथ-साथ चालू कर दें—सबेरे प्रात:काल से ले कर के सायंकाल तक का एक ऐसा टाइम-टेबल बनावें, जिसको सिद्धांतवादी कहा जा सके, आदर्शवादी कहा जा सके। इसमें भगवान की हिस्सेदारी रखिए। शरीर के लिए भी गुजारे का समय निकालिए, भगवान के लिए भी समय गुजारे का निकालिए।">आत्मबोध</a>'''
# find_text = '''तत्त्वबोध'''
# replace_text = '''<a href="../folders-special/aatmaboth-tattwabodh.html" target="blank" title="आप ये विचार ले के जाया कीजिए—हम संसार से अब चले, भगवान के यहाँ गए। भगवान के यहाँ गए, तो फिर क्या करना चाहिए ऐसी स्थिति में? आपका लगाव जितना ज्यादा होगा, उतने ज्यादा आप कष्ट पाएँगे। आप लगाव को छुटा दीजिए। लगाव ही सबसे ज्यादा कष्टकारक है।...नया जन्म, नई मौत—हर दिन का नया जन्म, हर रात को नई मौत। और ये मौत और जिंदगी के झूले में आप झूलते हुए, अपने फर्ज़, कर्तव्य और बुद्धिमत्ता के बारे में विचार करेंगे, तो आपको ऐसी हजारों बातें समझ पड़ेंगी, जिसके आधार पर आपका ये जन्म सार्थक हो सके, और आप अध्यात्मवाद के सच्चे अनुयायी और उत्तराधिकारी बन सकें।">तत्त्वबोध</a>'''
# find_text = '''गायत्री मंत्र'''
# replace_text = '''<a href="../folders-special/gayatri-mantra-kyon-kaise-japen.html" target="blank" title="अध्यात्म में जो शिक्षण हम प्राप्त करते हैं, उसको जीवन में उतारना पड़ता है। इससे कम में कोई बात बनती नहीं, गाड़ी आगे बढ़ती नहीं। उच्चारण हमारे लिए आवश्यक तो है, पर काफी नहीं है। राम नाम या गायत्री मंत्र तो सभी याद कर लेते हैं।.....अक्षर याद कर लेने भर से अध्यात्म का कोई उद्देश्य पूरा नहीं होता, जैसा कि आम लोगों का ख्याल है। आम लोगों को मुद्दतों से इसी तरह बहकाया जाता रहा है कि अक्षर याद कीजिए, अक्षरों का उच्चारण कीजिए और स्वर्गलोक को चले जाइए। पर ऐसा होता नहीं है। शुरुआत हम राम नाम से करें, ठीक है। नाम तो लेना ही पड़ता है। नाम नहीं लेंगे तो बात कैसे बनेगी? जिस तक पहुँचना है उसका नाम तो लेना ही पड़ेगा। स्टेशन का नाम बताए बिना तो उसका टिकट भी नहीं मिलता।.....लेकिन अगर नाम के उच्चारण तक ही सीमित रहा गया तो समझना चाहिए कि जिस तरीके से सुग्गा (तोता) राम नाम और गायत्री मंत्र को बोलता रहता है, पर लाभ कुछ नहीं पाता, उसी तरह उससे कम या अधिक लाभ आपको भी नहीं मिलेगा।">गायत्री मंत्र</a>'''
# find_text = '''युगऋषि'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="पूज्य गुरुदेव— मैं व्यक्ति नहीं विचार हूँ।.....हम व्यक्ति के रूप में कब से खत्म हो गए। हम एक व्यक्ति हैं? नहीं हैं। हम कोई व्यक्ति नहीं हैं। हम एक सिद्धान्त हैं, आदर्श हैं, हम एक दिशा हैं, हम एक प्रेरणा हैं।">युगऋषि</a>'''
# find_text = '''युग ऋषि'''
# replace_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="पूज्य गुरुदेव— मैं व्यक्ति नहीं विचार हूँ।.....हम व्यक्ति के रूप में कब से खत्म हो गए। हम एक व्यक्ति हैं? नहीं हैं। हम कोई व्यक्ति नहीं हैं। हम एक सिद्धान्त हैं, आदर्श हैं, हम एक दिशा हैं, हम एक प्रेरणा हैं।">युग ऋषि</a>'''
# find_text = '''ऋषि परम्परा'''
# replace_text = '''<a href="../books/hamari-vasiyat-aur-virasat-1.html#17" target="blank" title="तीसरी हिमालय यात्रा—ऋषि परम्परा का बीजारोपण...मथुरा छोड़कर हरिद्वार डेरा डालने का निर्देश मिला और कहा गया कि वहाँ रहकर ऋषि परम्परा को पुनर्जीवित करने का कार्य आरम्भ करना है।...उत्तराखण्ड में जहाँ-तहाँ देवी-देवताओं के मन्दिर तो बन गए हैं ताकि उन पर धनराशि चढ़ती रहे और पुजारियों का गुजारा होता चले, पर इस बात को न कोई पूछने वाला है न बताने वाला कि ऋषि कौन थे? कहाँ थे? क्या करते थे? उसका कोई चिह्न भी अब बाकी नहीं रहा। हम लोगों की दृष्टि में ऋषि परम्परा की तो अब एक प्रकार से प्रलय ही हो गई।">ऋषि परम्परा</a>'''
# find_text = '''ऋषि'''
# replace_text = '''<a href="../folders-special/rishi-paramparaa.html" target="blank" title="भारतीय संस्कृति को विश्व की सबसे पुरानी और सर्वश्रेष्ठ संस्कृति माना जाता है। इसे स्वरूप देने और प्रतिष्ठित करने में ऋषियों की प्रमुख भूमिका रही है। युगऋषि वेदमूर्ति, तपोनिष्ठ पं.श्री आचार्य श्रीराम शर्मा ने शान्तिकुञ्ज को जाग्रत युगतीर्थ के रूप में विकसित, प्रतिष्ठित किया है। उन्होंने ऋषियों की गौरवपूर्ण परम्परा को पुनर्जीवित-प्रतिष्ठित करने का प्रभावकारी अभियान चलाया है। गायत्रीतीर्थ शान्तिकुञ्ज की तमाम गतिविधियाँ प्राचीन ऋषि परम्परा के नए संस्करण के रूप में चलाई जाती हैं। आश्रम के इस सप्तऋषि क्षेत्र में इसी तथ्य को स्पष्ट करने का प्रयास किया गया है। सात ऋषियों की मूर्तियों के साथ उनकी परम्पराओं का भी उल्लेख किया गया है। जिन सात ऋषियों की प्रतिमाएँ स्थापित हैं, उनके अलावा भी नीचे लिखे अनुसार अनेक ऋषियों की परम्परा के अनुरूप गतिविधियाँ चलाई जाती हैं।">ऋषि</a>'''
# find_text = '''युग निर्माण'''
# replace_text = '''<a href="../folders-special/yug-nirman-yojna-ek-dristi-me.html" target="blank" title="परम पूज्य गुरुदेव जून सन् १९६० से ६१ तक हिमालय अज्ञातवास में रहे। वहाँ से लौटकर उन्होंने नवसृजन के लिए ‘युग निर्माण योजना’ का उद्घोष किया। कोई भी व्यक्ति या संगठन इन कार्यक्रमों को यथावत या सामयिक परिस्थितियों के अनुसार संशोधित रूप में नि:संकोच अपनाकर इनका लाभ उठा सकते हैं।">युग निर्माण</a>'''
# find_text = '''विचार क्रान्ति'''
# replace_text = '''<a href="../folders-special/vicara-kranti-ke-bijom-se-kranti-ki-kesariya-phasala-lahalaha-uthe.html" target="blank" title="युग बदलने के लिए बहुत बड़े काम करने पड़ेंगे; परन्तु यह काम नौकरों से नहीं हो सकेगा। यह काम भावनाशीलों का है, त्यागियों का है। हमको भावनाशील आदमियों की जरूरत है, जिनको हम प्रामाणिक कह सकें, जिनको हम परिश्रमी कह सकें। जो परिश्रमी हैं, वे प्रामाणिक नहीं हैं और वे जो प्रामाणिक हैं, वे परिश्रमी नहीं हैं और वे जो प्रामाणिक और परिश्रमी हैं, उनको मिशन की जानकारी नहीं है। हमारे पास समय बहुत कम है। हमको आदमियों की जरूरत है। अगर आप स्वयं उन आदमियों में शामिल होना चाहते हों, तो आइए आपका स्वागत करते हैं और आपको यह विश्वास दिलाते हैं कि आप जो भी काम करते हैं, उन सब कामों की बजाय यह बेहतरीन धंधा है। इससे बढ़िया धंधा और कोई नहीं हो सकता। हमने किया है, इसलिए आपको भी यकीन दिला सकते हैं कि यह बहुत फायदे का धंधा है।">विचार क्रान्ति</a>'''
# find_text = '''महाकाल'''
# replace_text = '''<a href="../folders-special/mahakal-ke-tevar-samajhen-dand-ke-nahi-paritoshik-ke-patra-bane.html" target="blank" title="हम युग की पुकार का बार-बार उद्घोष कर रहे हैं। उचित है कि समय रहते इस युग पुकार को सुन लिया जाय। न सुना जायेगा तो हम अधिक क्या कहें सिर्फ चेतावनी भर देते हैं कि अगले ही दिनों महाकाल प्रतिभाओं को व्यक्तिगत स्वार्थ साधना में जुते रहने से मुक्त करा लेगा। कोई धन का मनमाना अपव्यय न कर सकेगा। किसी की बुद्धि व्यक्तिगत तृष्णा की पूर्ति में न लगी रहने पायेगी, किसी का बल वासना की पूर्ति में संलग्न न रहने दिया जायेगा।...अगले दिनों संसार में एक भी व्यक्ति अमीर न रह सकेगा। पैसा बँट जायेगा, पूँजी पर समाज का नियंत्रण होगा और हम सभी केवल निर्वाह मात्र के अर्थ साधन उपलब्ध कर सकेंगे।">महाकाल</a>'''
# find_text = '''बलिवैश्व'''
# replace_text = '''<a href="../folders-special/ek-pratik-shadhana.html#2" target="blank" title="बेटे! गायत्री और यज्ञ को विश्व के घर-घर में पहुँचा दो। यही मेरी अंतःकरण की कामना है।...जहाँ भी गायत्री यज्ञ होता है, वहाँ हम और हमारे गुरुदेव आ जाते हैं।... बेटे! मैंने बहनों के हाथ में बलिवैश्व यज्ञ के रूप में परिवार-निर्माण का रिमोट कंट्रोल थमा दिया है। वे अपने परिवार को जैसा चाहें, वैसा बना सकतीं हैं।">बलिवैश्व</a>'''
# find_text = '''प्रातःकालीन ध्यान'''
# replace_text = '''<a href="../folders-special/morning-dhyan.html" target="blank" title="प्रातःकालीन ध्यान — स्थूल, सूक्ष्म और कारण तीनों शरीरों का">प्रातःकालीन ध्यान</a>'''
# find_text = '''ध्यान'''
# replace_text = '''<a href="../kd/7-jivan-sadhana-ke-swarnim-sutra.html#10" target="blank" title="ध्यान जिनका किया जाता है, उन्हें लक्ष्य मानकर तद्रूप बनने का प्रयत्न किया जाता है। राम, कृष्ण, शिव आदि की ध्यान-धारणा का यही प्रयोजन है कि उस स्तर की महानता से अपने को ओत-प्रोत करें। परिजन प्राय: गायत्री मन्त्र का जप और उदीयमान सूर्य का ध्यान करते हैं।">ध्यान</a>'''
# find_text = '''जप'''
# replace_text = '''<a href="../kd/7-jivan-sadhana-ke-swarnim-sutra.html#10" target="blank" title="नाम जप का तात्पर्य है—जिस परमेश्वर को—उसके विधान को आमतौर से हम भूले रहते हैं, उसको बार-बार स्मृति पटल पर अंकित करें, विस्मरण की भूल न होने दें। सुर-दुर्लभ मनुष्य जीवन की महती अनुकम्पा और उसके साथ जुड़ी हुई स्रष्टा की आकांक्षा को समझने, अपनाने की मानसिकता बनाए रहने का नित्य प्रयत्न करना ही नाम-जप का महत्त्व और माहात्म्य है।">जप</a>'''
# find_text = '''प्राणायाम'''
# replace_text = '''<a href="../kd/7-jivan-sadhana-ke-swarnim-sutra.html#10" target="blank" title="प्राणायाम में नासिका द्वारा ब्रह्माण्डव्यापी प्राण-तत्त्व को खींचने, धारण करने और घुसे हुए अशुभ को बुहार फेंकने की भावना की जाती है। संसार में भरा तो भला-बुरा सभी कुछ है, पर हम अपने लिए मात्र दिव्यता प्राप्ति को ही उपयुक्त समझें। जो श्रेष्ठ-उत्कृष्ट है, उसी को पकड़ने और सत्ता में प्रतिष्ठित करने का प्रयत्न करें।">प्राणायाम</a>'''
# find_text = '''प्रतीक पूजा'''
# replace_text = '''<a href="../kd/7-jivan-sadhana-ke-swarnim-sutra.html#9" target="blank" title="विभिन्न मत−मतान्तरों के अनुरूप विभिन्न प्रकार की पूजा पद्धतियाँ, क्षेत्र या सम्प्रदाय विशेष में प्रचलित पाई जाती हैं। उन सब के पीछे तथ्य और रहस्य एक ही काम करता है कि अपने आपको परिष्कृत एवं सुव्यवस्थित बनाया जाये। यही ईश्वर की एक मात्र पूजा, उपासना और अभ्यर्थना है।">प्रतीक पूजा</a>'''
# find_text = '''कर्मकाण्ड'''
# replace_text = '''<a href="../kd/7-jivan-sadhana-ke-swarnim-sutra.html#9" target="blank" title="देवपूजा के कर्मकाण्डों को प्रतीकोपासना कहते हैं, जिसका तात्पर्य है कि संकेतों के आधार पर क्रिया-कलापों को निर्धारित करना।">कर्मकाण्ड</a>'''
# find_text = '''महामानव'''
# replace_text = '''<a href="../books/hamari-vasiyat-aur-virasat-1.html#13" target="blank" title="हम अपनी जीवन साधना के, स्वयं की आत्मिक प्रगति से जुड़े तीन महत्त्वपूर्ण चरणों की व्याख्या कर दें। हमारी सफल जीवन यात्रा का यही केन्द्र बिन्दु रहा है। आत्मगाथा पढ़ने वालों को इस मार्ग पर चलने की इच्छा जागे, प्रेरणा मिले तो वे उस तत्त्वदर्शन को हृदयंगम करें, जो हमने जीवन में उतारा है।...सबसे प्रमुख पाठ जो इस काया रूपी चोले में रहकर हमारी आत्म-सत्ता ने सीखा है, वह है सच्ची उपासना, सही जीवन साधना एवं समष्टि की आराधना। यही वह मार्ग है जो व्यक्ति को नर मानव से देवमानव, ऋषि, देवदूत स्तर तक पहुँचाता है।">महामानव</a>'''
# find_text = '''उपासना'''
# replace_text = '''<a href="../books/hamari-vasiyat-aur-virasat-1.html#14" target="blank" title="भूल यह होती रही है कि जो पक्ष इनमें सबसे गौण है, उस ‘‘पूजा पाठ’’ को ही उपासना मान लिया गया और उतने पर ही आदि-अन्त कर लिया गया। पूजा का अर्थ है—हाथों तथा वस्तुओं द्वारा की गई मनुहार, दिए गए छुट-पुट उपचार, उपहार, पाठ का अर्थ है—प्रशंसा परक ऐसे गुणगान जिसमें अत्युक्तियाँ ही भरी पड़ी हैं।...हमें हमारे मार्गदर्शक ने जीवनचर्या को आत्मोत्कर्ष के त्रिविध कार्यक्रमों में नियोजित करने के लिए सर्वप्रथम उपासना का तत्त्वदर्शन और स्वरूप समझाया। कहा—भगवान तुम्हारी मर्जी पर नहीं नाचेगा। तुम्हें ही भगवान का भक्त बनना और उसके संकेतों पर चलना पड़ेगा। ऐसा कर सकोगे, तो तद्रूप होने का लाभ प्राप्त करोगे।">उपासना</a>'''
# find_text = '''साधना'''
# replace_text = '''<a href="../books/hamari-vasiyat-aur-virasat-1.html#15" target="blank" title="बालक की तरह मनुष्य सीमित है। उसे असीम क्षमता उसके सुसम्पन्न सृजेता भगवान से उपलब्ध होती है, पर यह सशर्त है।...यह दैवी उपलब्धि किस प्रकार सम्भव हुई। इसका एक ही उत्तर है—पात्रता का अभिवर्धन। उसी का नाम जीवन साधना है। उपासना के साथ उसका अनन्य एवं घनिष्ठ सम्बन्ध है।">साधना</a>'''
# find_text = '''आराधना'''
# replace_text = '''<a href="../books/hamari-vasiyat-aur-virasat-1.html#16" target="blank" title="आराधना का अर्थ है—लोकमंगल में निरत रहना। जीवन साधना प्रकारान्तर से संयम साधना है। उसके द्वारा न्यूनतम में निर्वाह चलाया और अधिकतम बचाया जाता है। समय, श्रम, धन और मन मात्र उतनी ही मात्रा का शरीर तथा परिवार के लिए खर्च करना पड़ता है, जिसके बिना काम न चले। काम न चलने की कसौटी है—औसत देशवासियों का स्तर। इस कसौटी पर कसने के उपरान्त किसी भी श्रमशील और शिक्षित व्यक्ति का उपार्जन इतना हो जाता है कि काम चलाने के अतिरिक्त भी बहुत कुछ बच सके। इसी के सदुपयोग को आराधना कहते हैं।...देखा यह जाना चाहिए कि इस प्रयास के फलस्वरूप सद्भावनाओं का सम्वर्धन होता है या नहीं, सत्प्रवृत्तियों को अग्रगामी बनाने का सुयोग बनता है या नहीं। संकटग्रस्तों को विपत्ति से निकासने और सत्प्रवृत्तियों को आगे बढ़ाने में जो कार्य सहायक हों, उन्हीं की सार्थकता है।...उनमें धन या समय देने से पूर्व हजार बार यह विचार करना चाहिए कि अपने प्रयत्नों की अन्तिम परिणति क्या होगी?">आराधना</a>'''
# find_text = '''दीक्षा'''
# replace_text = '''<a href="../special-pravachan/diksa-aura-usaka-svarupa.html" target="blank" title="दीक्षा—एक शपथ-एक अनुबन्ध...जिस दिन प्रतिज्ञामय जीवन जीने की कसम खाई जाती है, शपथ खाई जाती है कि हमारा मुख इस ओर मुड़ गया और हम अपने कर्तव्यों की ओर अग्रसर होने को कटिबद्ध हो गये हैं; उसकी जो प्रतिज्ञा की जाती है, उसकी जो शपथ ली जाती है, उस शपथ का नाम ‘दीक्षा समारोह है’, ‘दीक्षा उत्सव’ है, ‘दीक्षा संस्कार’ है। शपथ ली जाती है कि हम अपने आपको प्रकृति के साथ नहीं, वासना के साथ नहीं, तृष्णा के साथ नहीं, बल्कि अपने को अपनी जीवात्मा के साथ जोड़ते हैं और अपने मन, बुद्धि, चित्त, अहंकार को अपनी आत्मा के साथ जोड़ते हैं। अपनी क्रियाशीलता और सम्पदा को अपनी आत्मा के साथ जोड़ते हैं। आत्मा का अर्थ परमात्मा जो कि शुद्ध और परिष्कृत रूप से हमारे अन्तःकरण में बैठा हुआ है।">दीक्षा</a>'''
# find_text = '''समस्याएँ.......'''
# replace_text = '''<a href="../folders-special/aatmaboth-tattwabodh.html" target="blank" title="आत्मबोध और तत्त्वबोध की साधना">आत्मबोध</a>'''
# find_text = '''प्रगति.........'''
# replace_text = '''<a href="../folders-special/aatmaboth-tattwabodh.html" target="blank" title="आत्मबोध और तत्त्वबोध की साधना">आत्मबोध</a>'''

# find_text = '''शक्तिपात'''
# replace_text = '''<a href="../v68-5/12-paramarthaparayan-banen-daivi-anugrah-payen.html#1" target="blank" title="शक्तिपात किसे कहते हैं? हम सिद्धान्तों एवं आदर्शों का जीवन हिम्मत के साथ जियेंगे, यही शक्तिपात कहलाता है।">शक्तिपात</a>'''
# find_text = '''कुण्डलिनी'''
# replace_text = '''<a href="../v68-5/12-paramarthaparayan-banen-daivi-anugrah-payen.html#2" target="blank" title="कुण्डलिनी क्या होती है? जिसे हम करुणा मिश्रित विवेकशीलता कहते हैं। करुणा किसे कहते हैं? जिससे दूसरे व्यक्ति के दुःख तकलीफ को देखकर द्रवित हो जाए। उसे विवेकशील कैसा होना चाहिए? उसे विवेकशील ऐसा होना चाहिए जैसा जापान का गाँधी कागावा था।">कुण्डलिनी</a>'''
# find_text = '''युग-निर्माण योजना'''
# replace_text = '''<a href="../v68-5/12-paramarthaparayan-banen-daivi-anugrah-payen.html#3" target="blank" title="युग-निर्माण योजना का मतलब है आस्तिकता के सिद्धान्तों का विस्तार। हम घर-घर में इसका प्रचार करना चाहते हैं। आस्तिकता का मतलब कर्तव्यपरायणता, धार्मिकता, नैतिकता से है, जिसका प्रचार करना युग निर्माण का उद्देश्य है। हम चाहते हैं कि आप झोला पुस्तकालय, घर-घर ज्ञानमन्दिर, चल-पुस्तकालय के माध्यम से युग-निर्माण योजना यानि आस्तिकता के अभियान को पूरा करें।">युग-निर्माण योजना</a>'''

# Example3: HTML anchor tag to plain text
# find_text = '''<a href="../folders-special/hamari-vasiyat-aur-virasat.html" target="blank" title="बेटा! मुझे और गुरुजी को कभी अलग मत समझना। बेटा, आने वाले समय में दुनिया अपनी समस्याओं का समाधान मेरे गीतों में और पूज्य गुरुजी के प्रवचनों में (विचारों में) ढूँढ़ेगी।">माताजी</a>'''
# replace_text = '''माताजी'''

output_file = 'find-replace-single-word-without-root-files-conditional.html'
find_replace(root_dir, find_text, replace_text, output_file)

end = time.time()
print("Elapsed (with compilation) = %s" % (end - start))
