添加产品规格文档并优化项目结构
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
"""
|
||||
服务层:封装对 modules 业务模块的常用工作流,供 UI 层(tab_*.py)按需调用。
|
||||
|
||||
- 不替代现有业务类,仅做薄封装与流程编排。
|
||||
- Tab 可继续直接使用 modules.*,也可逐步改为调用本层以集中错误处理、参数归一化等。
|
||||
"""
|
||||
|
||||
from . import schema_service
|
||||
from . import tech_config_service
|
||||
|
||||
__all__ = ["schema_service", "tech_config_service"]
|
||||
@@ -0,0 +1,40 @@
|
||||
"""
|
||||
Schema 服务:封装 SchemaGenerator 的常用工作流,供 Tab(文章优化、自动创作等)调用。
|
||||
"""
|
||||
from typing import Any, Dict, List, Tuple
|
||||
|
||||
from modules.schema_generator import SchemaGenerator
|
||||
|
||||
|
||||
def get_combined_schema(
|
||||
brand_name: str,
|
||||
advantages: str = "",
|
||||
schema_types: List[str] = None,
|
||||
**kwargs: Any,
|
||||
) -> Dict:
|
||||
"""生成组合 JSON-LD Schema。返回可序列化为 JSON 的字典。"""
|
||||
gen = SchemaGenerator()
|
||||
return gen.generate_combined_schema(
|
||||
brand_name=brand_name,
|
||||
advantages=advantages,
|
||||
schema_types=schema_types,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
def get_combined_schema_and_html(
|
||||
brand_name: str,
|
||||
advantages: str = "",
|
||||
schema_types: List[str] = None,
|
||||
**kwargs: Any,
|
||||
) -> Tuple[Dict, str]:
|
||||
"""生成组合 Schema 及其 HTML script 标签片段。返回 (schema_dict, html_script_str)。"""
|
||||
gen = SchemaGenerator()
|
||||
schema = gen.generate_combined_schema(
|
||||
brand_name=brand_name,
|
||||
advantages=advantages,
|
||||
schema_types=schema_types or ["Organization", "SoftwareApplication"],
|
||||
**kwargs,
|
||||
)
|
||||
html = gen.generate_html_script_tag(schema)
|
||||
return schema, html
|
||||
@@ -0,0 +1,42 @@
|
||||
"""
|
||||
技术配置服务:封装 TechnicalConfigGenerator 的常用工作流,供 Tab(文章优化等)调用。
|
||||
"""
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from modules.technical_config_generator import TechnicalConfigGenerator
|
||||
|
||||
|
||||
def generate_robots_txt(
|
||||
base_url: str = "",
|
||||
allow_paths: Optional[List[str]] = None,
|
||||
disallow_paths: Optional[List[str]] = None,
|
||||
sitemap_url: str = "",
|
||||
user_agent: str = "*",
|
||||
crawl_delay: Optional[int] = None,
|
||||
) -> str:
|
||||
"""生成 robots.txt 内容。"""
|
||||
gen = TechnicalConfigGenerator()
|
||||
return gen.generate_robots_txt(
|
||||
base_url=base_url,
|
||||
allow_paths=allow_paths,
|
||||
disallow_paths=disallow_paths,
|
||||
sitemap_url=sitemap_url,
|
||||
user_agent=user_agent,
|
||||
crawl_delay=crawl_delay,
|
||||
)
|
||||
|
||||
|
||||
def generate_sitemap_xml(
|
||||
base_url: str,
|
||||
urls: Optional[List[Dict[str, Any]]] = None,
|
||||
keywords: Optional[List[str]] = None,
|
||||
lastmod: Optional[str] = None,
|
||||
) -> str:
|
||||
"""生成 sitemap.xml 内容。"""
|
||||
gen = TechnicalConfigGenerator()
|
||||
return gen.generate_sitemap_xml(
|
||||
base_url=base_url,
|
||||
urls=urls,
|
||||
keywords=keywords,
|
||||
lastmod=lastmod,
|
||||
)
|
||||
Reference in New Issue
Block a user